#ifndef _sbrush_gesture_interpolator_h_
#define _sbrush_gesture_interpolator_h_

#include "sbrush_pantomime_dag_converter.h"
#include <memory>
#include <vector>

namespace sbrush {
	
	class GestureInterpolator : public PantomimeDagConverter {
		struct FramePair {
			dag::Frame* input;
			dag::Frame* output;
		};
	public:
		GestureInterpolator();
		virtual ~GestureInterpolator() throw();
		std::auto_ptr<TrainPair> convert(const Pantomime& pantomime);
	private:
		void interpolateFrames(const Pantomime& pantomime,
							   size_t startIdx,
							   size_t endIdx,
							   std::vector<FramePair>& ioPairs);
	};
}


#endif